#ifndef __DATASTORE_H__
#define __DATASTORE_H__

#include "../../include/pagelib/DataSql.h"
#include <string>
#include <unordered_map>
#include <vector>

class DataStore
{
public:
    DataStore();
    ~DataStore();
    // 将数据存储到mysql数据库
    void storeToDataBase();
    
private:    
    // 保存网页库
    void storeWebPageLib();
    // 保存网页偏移库
    void storeOffsetLib();
    // 保存倒排索引库
    void storeInvertIndexLib();

    // 保存英文词频库
    void storeEnDict();
    // 保存英文索引
    void storeEnDictIndex();
    // 保存中文词频库
    void storeCnDict();
    // 保存中文索引
    void storeCnDictIndex();

private:
    // 处理 SQL 字符串转义，防止 SQL 注入
    string escapeString(const string &input);
    //  连接字符串
    string join(const vector<string> &vec, const string &delimiter);
    //  去除首尾空格
    string trim(const string &s);
    // 通用 SQL 执行方法
    void executeSQL(const string &sql, const string &logMessage);

private:
    DataSql _dataSql;
    unordered_map<string, string> _configMap;
};

#endif
